//判断是否点击了 功能模块 true 未点击 false 点击 
var fm = true;
// 判断是否点击了 数据资源 true 未点击 false 点击
var dm = true;
// 初始化模块
var initModule = "function";
// 功能模块 人员/角色
var grantType_function = "Account";
// 数据模块 人员/角色
var grantType_data = "Account";
var i = 0;

$(window).resize(function() {
	$('#function_module').datagrid("resize", {
		height : 'auto',
		width:'auto'
	});
});
$(function() {
	i = 0;
	$("#fn_select_account_ids").val("");
	$("#fn_select_account_names").val("");
	$("#da_select_account_ids").val("");
	$("#da_select_account_names").val("");
	$("#fn_select_role_ids").val("");
	$("#fn_select_role_names").val("");
	$("#da_select_role_ids").val("");
	$("#da_select_role_names").val("");
	// 初始化应用系统
	$.ajax({
        type:'get',
        url:craapphelper_+"?jsoncallback=?",
        dataType:'json',
        async: false,
        success:function(d){
    		for ( var i = 0; i < d.length; i++) {
    			$("#cra_app").get(0).options.add(new Option(d[i].appName,
    					d[i].appCd));
    		}
    		functionModule("function_module", "TOPMENU");
	    }
	});

});

// 功能模块数据初始化
function functionModule(moduleId, type) {
	// 判断是否加载过数据
		var count = 0;
		var url = findmenu_+"?appCd="
				+ $("#cra_app").val() + "&grantType=" + grantType_function+"&jsoncallback=?";
		$('#' + moduleId)
				.treegrid(
						{
							// 如果没有title就不会有表头
							 title :window_resource_menu,
							// 表头的图标
							// iconCls : 'icon-save',
							// autoRowHeight:false,
							// 宽度
							width : 800,
							// 高度
							height : 300,
							// 真正自动展开/收缩以适应网格的宽度和防止水平滚动列的大小。
							// fitColumns : true,
							// 真正显示在同一行的数据。 设置为true，可以提高加载性能。
							nowrap : true,
							// 是否可以多选 true 单选 false 多选
							singleSelect : true,
							// 是否显示行号 true 显示， false 不显示
							rownumbers : true,
							// 定义当节点展开或折叠时是否显示动画效果
							animate : true,
							collapsible : true,
							url : "",
							// url:url,
							// 标识字段
							idField : 'id',
							// treeField属性以指定那个字段可以收缩和展开：
							treeField : 'id',
							// 和列的特性一样，但是这些列将被冻结在左边。
							frozenColumns : [ [ {
								title : lable_resource_menuname,
								field : 'id',
								width : 200,
								formatter : function(value, index, row) {
									var info = "";
									if (value != "undefined" && value != null
											&& value != "") {
										if (value.indexOf("_") > 0) {
											info = '<span class="tree-checkbox tree-checkbox0"></span><span style="color:red">'
													+ value + '</span>';
											if (value.split("_")[0]
													.indexOf("ord") == 0) {
												info = info
														+ '<span class="searchbox-button" onclick="search_(\''
														+ value
														+ '\')"></span><span id="search_detail" style="color:#0033FF;cursor:pointer;"></span>';
											}
										} else {
											info = row.label;
										}
									}
									return info;
								}
							} ] ],
							columns : [ [ {
								field : 'res',
								title : lable_resource_res,
								width : 100
							}, {
								field : 'assign',
								title : lable_resource_assign,
								width : 200,
								formatter : function(value,index,row) {
									var info = "";
									if (value) {
										info = lable_resource_assign_true;
									} else {
										info = lable_resource_assign_false;
									}
									return info;
								}
							}, {
								field : 'appName',
								title : lable_resource_app,
								width : 200
							}, {
								field : 'path',
								title : lable_resource_path,
								width : 200
							}, {
								field : 'fullPath',
								title : lable_resource_fullpath,
								width : 200,
								formatter : function(value) {
									var info = "";
									if (value) {
										info = lable_resource_fullpath_true;
									} else {
										info = lable_resource_fullpath_false;
									}
									return info;
								}
							}, {
								field : 'iconNm',
								title : lable_resource_iconnm,
								width : 200
							} ] ],
							// 发出一个加载数据的请求前触发，返回 false 就取消加载动作
							onBeforeLoad : function(row, param) {
								var dat = new Date();
								if (row) {
									$(this).treegrid('options').url = url+"&ids="+row.id+"&dat="+dat;
								} else {
									if (count == 0) {
										$(this).treegrid('options').url = url
												+ "&type=" + type;
										count++;
									} else {
										return false;
									}
								}
							},
							toolbar : [
									{
										text : button_add,
										iconCls : 'icon-add',
										handler : function() {
											var id = $('#function_module').treegrid("getSelections");
											if (id.length > 1) {
												$.messager.alert(message_warning, message_warning_unique, 'warning');
											} else {
												setFormNullByFormId("edit_menu_form");
												grantType_function = "Role";
												search_(initRoleInfo_,
														window_resource_menu_edit);
												$("#appCd").val($("#cra_app").val());
												$("#appName").val($("#cra_app").find("option:selected").text());
												$("#res").attr("readonly",false);
												$("input[name=assign][value=true]").attr("checked",true);
												$("input[name=fullPath][value=false]").attr("checked",true);
												if(id.length==1){
													$("#parentId").val(id[0].id);
													$("#group").val(id[0].res);
												}
											}
										}
									},
									{
										text : button_modify,
										iconCls : 'icon-edit',
										handler : function() {
											var id = $('#function_module').treegrid("getSelections");
											if (id == null || id.length==0) {
												$.messager.alert(message_warning, message_warning_data, 'warning');

											}else if (id.length > 1) {
												$.messager.alert(message_warning, message_warning_unique, 'warning');
											} else {
												var url = findmenubyid_+"?id=" + id[0].id;
												$.ajax({
											        type:'get',
											        url:url+"&jsoncallback=?",
											        dataType:'json',
											        async: false,
											        success:function(datas){
														setFormJsonDataByFormId('edit_menu_form', datas);
														$("input[name=assign][value="+datas["assign"]+"]").attr("checked",true);
														$("input[name=fullPath][value="+datas["fullPath"]+"]").attr("checked",true);
														search_(initRoleInfo_,
																window_resource_menu_edit);
														$("#res").attr("readonly","readonly");
												    }
												});
											}
										}
									},
									{
										text : button_delete,
										iconCls : 'icon-remove',
										handler : function() {
											var id = $('#function_module').treegrid("getSelections");
											if (id == null || id.length==0) {
												$.messager.alert(message_warning, message_warning_data, 'warning');

											} else {
												$.messager.confirm(message_confirm, message_info_modify_select_delete, function(r) {
													if (r) {
														var url = removemenu_+"?id=" + id[0].id+"&appCd="+id[0].appCd+"&resource="+id[0].res;
														$.ajax({
													        type:'get',
													        url:url+"&jsoncallback=?",
													        dataType:'json',
													        async: false,
													        success:function(datas){
																if(datas['responseText'] != undefined){
																	var errorInfo = datas['responseText'];
																	var errors =eval("("+errorInfo+")");
																	$.messager
																	.alert(
																			'错误信息',
																			errors['message'],
																			'error');
																}else if(datas!=""){
																	$('#function_module').treegrid('remove',datas);
																}else{
																}
														    }
														});
													}
												});
											}
										}
									}]
						});
}

// 数据结点查询条件
function search_(url, title) {
	$('#edit_menu').show();
	$('#edit_menu').dialog({
		// 定义是否显示可折叠按钮
		// collapsible : true,
		// // 定义是否显示最小化按钮
		// minimizable : false,
		// // 定义是否显示最大化按钮
		// maximizable : true,
		// 定义对话框是否可编辑大小
		// resizable:true,
		// 锁住窗口
		modal : true,
		// closeOnEscape 为true的时候，点击键盘ESC键关闭dialog，
		closeOnEscape : false,
		// 关闭事件
		onClose : function(event, ui) {
			$("#edit_menu_form").resetForm();
			$("#edit_menu_form table input").removeClass(
					"validatebox-invalid");
			$("#edit_menu_form table input").removeClass(
			"validatebox-invalid");
			$(".validatebox-tip").empty();
		},
		buttons : [ {
			iconCls : 'icon-ok',
			text : button_submit,
			handler : function() {
				if ($("#edit_menu_form").form("validate")) {
					var data = $("#edit_menu_form").ajaxForm()
					.formSerialize();
					var url = editmenu_;
					$.ajax({
				        type:'get',
				        url:url+"?jsoncallback=?",
				        dataType:'json',
				        data:data,
				        async: false,
				        success:function(datas){

//							alert(JSON.stringify(datas));
							if(datas['responseText'] != undefined){
								var errorInfo = datas['responseText'];
								var errors =eval("("+errorInfo+")");
								$.messager
								.alert(
										'错误信息',
										errors['message'],
										'error');
							}else{
								var id = $("#id").val();
								if (datas.flag) {
									if(id==""){
										$.messager.confirm(message_confirm,message_info_menu_select,function(r) {
											if (!r) {
												$('#edit_menu').dialog('close');
											}
										});
										//得到选中的项
										var select = $('#function_module').treegrid("getSelections");
										//判断是否有选中的项。并判断选中项的状态
										if(select!=null&&select.length>0&&select[0].state!="open"){
											$('#function_module').treegrid('expand',select[0].id);
										}else{
											$('#function_module').treegrid('append', {
											parent : datas.data[0]["_parentId"],
											data : datas.data
										});
										}
									}else{
										$.messager.alert(message_info, message_info_modify_success,'info');
										$('#function_module').treegrid('refresh',[datas.data[0]["id"],datas.data[0]]);
										$('#edit_menu').dialog('close');
									}
								}
							}
						
					    }
					});
				}
			}
		} ,{
			text : button_cancal,
			handler : function() {
				$('#edit_menu').dialog('close');
			}
		} ]
	});
	$('#edit_menu').dialog('setTitle', title);
}


/**
 * 应用系统改变事件
 */
function craAppChange() {
	functionModule("function_module", "TOPMENU");
}
